package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为List集合
 * 数组的工具Arrays提供了静态方法asList，可以将一个数组转换为一个List集合.
 */
public class ArrayToListDemo {
    public static void main(String[] args) {
        String[] array = {"one","two","three","四","5"};
        System.out.println("array:"+Arrays.toString(array));

        /** Arrays.asList(): 数组转换为List集合 */
        List<String> list = Arrays.asList(array);
        System.out.println("list"+list);
        /**
         * 对子集的修改就是对原集合对应元素的修改
         */
        //影响元素个数的操作的不支持.

        /* 对集合的操作就是对元素的操作 */
        list.set(1,"77");
        System.out.println("list:"+list);
        System.out.println("array:"+Arrays.toString(array));
        /*
            由于数组定长,因此集合会改变元素个数的操作都不支持，会抛出异常!
            UnsupportedOperationException
            list.add("?");
         */
        /**
         * 如果需要增删元素，需要自行创建一个集合同时包含数组转换的集合中的所有元素后方可随意操作.
         * String[] array = {?}
         * List<String> list = Arrays.asList(array);
         * List<String> list1 = new ArrayList<>(list);
         *     或
         * List<String> list2 = new ArrayList<>(Arrays.toString(array));
         */
        List<String> list1 = new ArrayList<>(list);
//        List<String> list2 = new ArrayList<>(Arrays.toString(array));
        System.out.println("list1:"+list1);
        list1.add("seven");
        System.out.println("list1:"+list1);




    }
}
